From b1669996833320eb7402415b15cd4a19d2310c25 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 13 Sep 2020 23:31:17 -0400 Subject: [PATCH] Add gdk_frame_clock_get_fps We already have more than one copy of this code in GTK, so just export this function. --- docs/reference/gdk/gdk4-sections.txt | 1 + gdk/gdkframeclock.c | 17 ++++++++++++----- gdk/gdkframeclock.h | 3 +++ 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/docs/reference/gdk/gdk4-sections.txt b/docs/reference/gdk/gdk4-sections.txt index c601c44407..68343f9923 100644 --- a/docs/reference/gdk/gdk4-sections.txt +++ b/docs/reference/gdk/gdk4-sections.txt @@ -1036,6 +1036,7 @@ gdk_frame_clock_get_history_start gdk_frame_clock_get_timings gdk_frame_clock_get_current_timings gdk_frame_clock_get_refresh_info +gdk_frame_clock_get_fps GDK_FRAME_CLOCK diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index 9ecb8707fb..4d05da780c 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -718,7 +718,6 @@ _gdk_frame_clock_emit_resume_events (GdkFrameClock *frame_clock) g_signal_emit (frame_clock, signals[RESUME_EVENTS], 0); } -#ifdef HAVE_SYSPROF static gint64 guess_refresh_interval (GdkFrameClock *frame_clock) { @@ -753,8 +752,17 @@ guess_refresh_interval (GdkFrameClock *frame_clock) return interval; } -static double -frame_clock_get_fps (GdkFrameClock *frame_clock) +/** + * gdk_frame_clock_get_fps: + * @frame_clock: a #GdkFrameClock + * + * Calculates the current frames-per-second, based on the + * frame timings of @frame_clock. + * + * Returns: the current fps, as a double + */ +double +gdk_frame_clock_get_fps (GdkFrameClock *frame_clock) { GdkFrameTimings *start, *end; gint64 start_counter, end_counter; @@ -788,7 +796,6 @@ frame_clock_get_fps (GdkFrameClock *frame_clock) return ((double) end_counter - start_counter) * G_USEC_PER_SEC / (end_timestamp - start_timestamp); } -#endif void _gdk_frame_clock_add_timings_to_profiler (GdkFrameClock *clock, @@ -804,5 +811,5 @@ _gdk_frame_clock_add_timings_to_profiler (GdkFrameClock *clock, gdk_profiler_add_mark (1000 * timings->presentation_time, 0, "presented window", NULL); } - gdk_profiler_set_counter (fps_counter, frame_clock_get_fps (clock)); + gdk_profiler_set_counter (fps_counter, gdk_frame_clock_get_fps (clock)); } diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index 962bf0c189..a2eba246ad 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -103,6 +103,9 @@ void gdk_frame_clock_get_refresh_info (GdkFrameClock *frame_clock, gint64 *refresh_interval_return, gint64 *presentation_time_return); +GDK_AVAILABLE_IN_ALL +double gdk_frame_clock_get_fps (GdkFrameClock *frame_clock); + G_END_DECLS #endif /* __GDK_FRAME_CLOCK_H__ */ -- 2.30.2